2017微软面试算法题回顾

惨痛的回忆= =
1.求一个数组中的逆序对数
思路:O(n2)的解法很明显,暴力破解即可。但这肯定不是面试官要的答案,很明显这样的题是找至少O(nlogn)的解法。
考虑使用归并排序,在归并排序中是将数组以mid分为左右两部分,合并到新的数组中的时候,比较a[i]和a[j]的大小,如果a[i]比a[j]大则a[i]之后到mid的所有数都比a[j]大,是逆序对。在递归调用中计算所有的a[i]比a[j]大的情况。

int ans=0;
void merge(int *a,int *storage,int low,int mid,int high)
{
    int i=low,j=low,k=mid+1;
    while(i<=mid&&k<=high)
    {
        if(a[i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值